Template থেকে Dynamic Document Generation

Java Technologies - অ্যাপাচি পিওআই (ওয়ার্ড) Templates এবং Document Generation |
134
134

Apache POI ব্যবহার করে আপনি Word ডকুমেন্ট তৈরি করতে পারেন এবং এটি একটি Template থেকে Dynamic Content সহ নতুন ডকুমেন্ট তৈরি করতে পারেন। এই প্রক্রিয়ায়, একটি স্ট্যাটিক Word Template (যেমন .docx ফাইল) ব্যবহার করা হয়, যেখানে পূর্বনির্ধারিত টেক্সট বা প্লেসহোল্ডার থাকে এবং প্রোগ্রামmatically সেই টেক্সট বা প্লেসহোল্ডার পরিবর্তন বা প্রতিস্থাপন করা হয়।

এই পদ্ধতিতে, আপনার Template ফাইলের কিছু অংশ ডাইনামিকভাবে পরিবর্তন করা সম্ভব, যেমন নাম, তারিখ, ঠিকানা, অথবা অন্যান্য কাস্টম ডেটা।


Template ব্যবহার করে Dynamic Document Generation

Template থেকে ডাইনামিক ডকুমেন্ট তৈরি করার জন্য কয়েকটি সাধারণ ধাপ:

  1. Template তৈরি করা: একটি স্ট্যাটিক Word Document তৈরি করুন, যেখানে আপনি পরিবর্তনযোগ্য ক্ষেত্র (যেমন ${name}, ${date}) ব্যবহার করবেন।
  2. POI দিয়ে Template লোড করা: Apache POI ব্যবহার করে টেমপ্লেট ফাইলটি লোড করুন।
  3. ডাইনামিক ডেটা দিয়ে টেমপ্লেট পূর্ণ করা: টেমপ্লেটের পরিবর্তনযোগ্য জায়গাগুলিকে dynamic values দিয়ে প্রতিস্থাপন করুন।
  4. নতুন ডকুমেন্ট সংরক্ষণ করা: পরিবর্তিত টেমপ্লেট থেকে নতুন Word ডকুমেন্ট তৈরি এবং সংরক্ষণ করুন।

উদাহরণ: Template থেকে Dynamic Document Generation

ধরা যাক, আমাদের কাছে একটি টেমপ্লেট template.docx ফাইল আছে, যেখানে কিছু প্লেসহোল্ডার আছে যেমন ${name} এবং ${date}। এখন আমরা এই টেমপ্লেটটি ব্যবহার করে একটি নতুন ডকুমেন্ট তৈরি করব, যেখানে এই প্লেসহোল্ডারগুলো ডাইনামিক ডেটা দিয়ে প্রতিস্থাপন করা হবে।

import org.apache.poi.xwpf.usermodel.*;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Map;

public class DynamicDocumentGeneration {
    public static void main(String[] args) throws IOException {
        // Template ডকুমেন্ট লোড করা
        FileInputStream fis = new FileInputStream("template.docx");
        XWPFDocument document = new XWPFDocument(fis);

        // ডাইনামিক ডেটা
        Map<String, String> data = Map.of(
            "${name}", "John Doe",
            "${date}", "2024-12-17"
        );

        // টেমপ্লেটে প্লেসহোল্ডার গুলি প্রতিস্থাপন করা
        for (XWPFParagraph paragraph : document.getParagraphs()) {
            for (XWPFRun run : paragraph.getRuns()) {
                String text = run.getText(0);
                if (text != null) {
                    // প্লেসহোল্ডার গুলি প্রতিস্থাপন করা
                    for (Map.Entry<String, String> entry : data.entrySet()) {
                        if (text.contains(entry.getKey())) {
                            text = text.replace(entry.getKey(), entry.getValue());
                            run.setText(text, 0); // প্রতিস্থাপিত টেক্সট সেট করা
                        }
                    }
                }
            }
        }

        // নতুন ডকুমেন্ট সংরক্ষণ
        FileOutputStream out = new FileOutputStream("generated_document.docx");
        document.write(out);
        out.close();

        System.out.println("ডাইনামিক ডকুমেন্ট সফলভাবে তৈরি হয়েছে।");
    }
}

কোড ব্যাখ্যা:

  1. Template লোড করা: প্রথমে template.docx ফাইলটি XWPFDocument দিয়ে লোড করা হয়েছে।
  2. Dynamic Data: একটি Map ব্যবহার করে ডাইনামিক ডেটা নির্দিষ্ট করা হয়েছে, যেখানে প্লেসহোল্ডার (${name}) এবং (${date}) এর পরিবর্তে আসল মান দেওয়া হয়েছে।
  3. Text Replacement: ডকুমেন্টের XWPFParagraph এবং XWPFRun এর মাধ্যমে প্রতিটি প্যারাগ্রাফের টেক্সট চেক করা হচ্ছে, এবং সেখানে যদি প্লেসহোল্ডার থাকে, তবে সেই প্লেসহোল্ডারটি ডাইনামিক ডেটা দিয়ে প্রতিস্থাপন করা হচ্ছে।
  4. Save New Document: পরিবর্তিত ডকুমেন্টটি generated_document.docx নামে নতুন ফাইলে সংরক্ষণ করা হয়েছে।

সারাংশ

Apache POI ব্যবহার করে আপনি সহজেই একটি Template Word Document থেকে Dynamic Document তৈরি করতে পারেন। টেমপ্লেটে প্লেসহোল্ডার বা স্ট্যাটিক টেক্সট রেখে, প্রোগ্রামmatically তা পরিবর্তন করে ডাইনামিক কনটেন্ট যোগ করা সম্ভব। এটি বিভিন্ন প্রয়োজনে যেমন কাস্টম রিপোর্ট তৈরি, চিঠি বা নোটিফিকেশন ইত্যাদি তৈরিতে কাজে আসে। Template থেকে ডাইনামিক ডকুমেন্ট জেনারেট করার জন্য XWPFParagraph এবং XWPFRun ব্যবহার করা হয় টেক্সট ম্যানিপুলেট করার জন্য।


common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion